热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS3中的伪类概览,很实用的

CSS的目标,或者说是革命纲领就是:“将样式与内容分离”,这个目标能否实现,很大程度上依赖于CSS访问内容的能力。在CSS3中,这个任务得到了有力支持,强大的结构伪类Structuralpseudo

CSS的目标,或者说是革命纲领就是:“将样式与内容分离”,这个目标能否实现,很大程度上依赖于CSS访问内容的能力。在CSS3中,这个任务得到了有力支持,强大的结构伪类Structural pseudo-classes出现了。提供了非常丰富的查询方式,让CSS选择器变得如此和蔼可亲了。让我们来快速概览一下,同时期待着浏览器整体换代的来到,毕竟只有最新的浏览器才支持CSS3选择器及其他特性。 支持浏览器:Firefox 3.1+, IE8+ (only in IE8 standards mode), and Safari 3.1+

CSS3结构伪类 Method Description E:root 选择文档的根结点,在HTML文档中也就是HTML节点 E:first-child 选择该节点的第一个子节点。 E:last-child 选择该节点的最后一个子节点。 E:nth-child(n) 选择指定节点的第N个子节点。
示例:

 

li:nth-child(1) /*选择Li元素的第一个节点*/

E:nth-last-child(n) 和上面的伪类逆序,选择指定节点从最后一个子节点开始的第N个子节点示例:

 

li:nth-last-child(1) /*选择Li节点的最后一个子节点*/

E:nth-of-type(n) 选择父节点之下,所有指定类型的的节点中的第N个,有点晦涩的一句话。还是看示例比较清楚:

 

ul li:nth-of-type(1) /*选择当前页面上所有Ul之下的第一个Li节点,包含嵌套的Ul之下的第一个Li*/
p:nth-of-type(odd) /*选择所有的奇数项的P元素,一下子解决了表格的交替背景色问题*/

E:nth-last-of-type(n) 选择父节点之下,所有指定类型的节点中倒序的第N个节点,和上面的正好顺序相反

 

示例:

option:nth-last-of-type(2) /*选择所有的select下倒数第二个option节点*/
option:nth-last-of-type(-n+3) /*选择倒数3个option节点,是多重选择*/

E:first-of-type 和上面的两个伪类类似,不过这个简单版,就是取第一个或者是最后一个示例:

 

p>quote:first-of-type /*选在所有P节点下第一个quote节点*/

E:last-of-type 同上:

 

tr>td:last-of-type /*选择每一行的最后一个单元格*/

E:only-of-type 选择在父节点之下,符合所有子节点中只有一个该类型节点条件的节点。又是比较难懂的一句话,也就是说,在子节点集合中,该元素必须符合指定类型,同时仅含有一个的情况。示例:

 

div>p:only-of-type /*s选择Div之下,如果只含有一个P节点,选择该节点*/
input[type="radio"]:only-of-type /*如果form中,只有一个input类型为radio的,选择该input节点*/

E:only-child 和上面类似,不过更加严格,仅当符合,该父节点下仅含有一个子节点的情况。示例:

 

div>p:only-child /*选择那些Div下只有一个p节点的p节点*/

E:empty 选择那些没有子节点的节点,也就是选择那些叶子节点(包含text节点). HTML注释不计入子节点数。来看一下具体例子:下面的都是空节点Empty Elements:

 


paragraph

以下都是非空节点Non Empty:

Welcome to Oncontextmenu=”return false;” id=KonaLink1
Onmouseover=adlinkMouseOver(event,this,1);
style=”POSITION: static; TEXT-DECORATION: underline! important”
Onclick=adlinkMouseClick(event,this,1); Onmouseout=adlinkMouseOut(event,this,1);
href=”http://www.Javascriptkit.com/dhtmltutors/structuralcss.shtml#” mce_href=”http://www.Javascriptkit.com/dhtmltutors/structuralcss.shtml#”
target=_top>
style=”FONT-WEIGHT: 400; FONT-SIZE: 13px; COLOR: blue! important; FONT-FAMILY: Courier new; POSITION: static”
color=blue> style=”FONT-WEIGHT: 400; FONT-SIZE: 13px; COLOR: blue! important; FONT-FAMILY: Courier new; POSITION: relative”>Javascript
Kit


E:target 这是一个很玄妙的伪类,可以定位到当前页面url跳转位置。还是结合示例来看:当前页面的url:http://www.Javascriptkit.com/dhtmltutors/structuralcss.shtml#该伪类可以选中跳转的anchor,在其前面加上一个箭头图标



href=”#whatsnew” mce_href=”#whatsnew”>Jump to what’s new

 

name=”whatsnew”>New content
1…

Also see:
href=”http://www.Javascriptkit.com/dhtmltutors/cssgenerate2.shtml” mce_href=”http://www.Javascriptkit.com/dhtmltutors/cssgenerate2.shtml”>Added
Generated Content in CSS2.

:not(s) 这个被称为逆伪类(很不准确的翻译,还是看原文吧)negation pseudo-class, “:not(s)
选择不是指定类型的节点,节点类型由参数传入(不含伪类元素本身)示例:

 

:not(p) /*选择所有不是P的节点*/
input:not([type="submit"]) /*选择所有不是submit按钮的input元素*/
option:not([selected="selected"]) /*选择所有不是默认选中的option*/

E:enabled 选择enabled节点。示例:

 

input[type="text"]:enabled /*选择所有enabled的text节点*/
input [type="submit"]:enabled /*选择所有类型为submit,且enabled的节点*/

E:disabled 选择diabled节点。示例:

 

input[type="text"]:disabled /* /*selects text boxes that
are disabled*/
input[type="submit"]:disabled /*selects submit buttons that
are disabled*/

E:checked 选择checked节点。通常为checkbox和radiobox元素。示例:

 

input:checked /*selects radio or checkbox elements that are
currently checked*/
input[type="radio"]:checked /*selects radio buttons that
are currently checked*/

CSS结构伪类中的表达式

在伪类“E:nth-child(n)” 和 “E:nth-of-type(n)”中,都支持参数传入,前面的例子中,我们只是简单的传入数字,选择指定位置的节点,其实这里的参数有着非常玄妙的表达式。我们来看一下:

首先他的表达式结构,或者说这个序列的通式为:

an+b

  • n n为该类型元素本身或者指定数字(大于等于0的整数)位置的元素。这是一个基数。
  • a 为n的系数。
  • b 偏移量。

单看公式是比较难以理解的,具体看些例子好了。

p:nth-of-type(n+1) /*选择所有第一个子节点之后的子节点,含第一个,等价于全部子节点,p:nth-of-type(n),其实是一个效果*/
p:nth-of-type(n+5) /*选择所有第五个子节点之后的节点,含第五个*/
p:nth-of-type(3n+2) /*选择,第二个,第五个,第八个节点,是一个数列,表达式即为通式。*/

tr:nth-of-type(-n+5) /*数学游戏,其实就是前五行,因为负数不具意义,所以当表达式结果为负数时,停止求值*/
tr:nth-last-child(-n+5) /*同上*/

所以原来可能让我们觉得很麻烦的交替显示,只需要这样:

option:nth-of-type(even) /*even OPTIONs in a SELECT*/
option:nth-of-type(2n) /*same as proceeding*/

option:nth-of-type(odd) /*odd OPTIONs in a SELECT*/
option:nth-of-type(2n+1) /*same as proceeding*/


推荐阅读
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 在第10天的夜灵HTML日志中,我们深入探讨了浏览器兼容性和高级选择器的应用。CSS3引入了许多新属性,但在旧版浏览器中的支持情况并不理想。然而,目前主流浏览器的最新版本已全面支持这些新特性。对于那些不支持CSS3新属性的浏览器,我们提供了多种解决方案,以确保网站在不同环境下的兼容性和用户体验。此外,我们还详细讨论了如何利用高级选择器提升页面布局的灵活性和可维护性。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 深入解析C#中app.config文件的配置与修改方法
    在C#开发过程中,经常需要对系统的配置文件进行读写操作,如系统初始化参数的修改或运行时参数的更新。本文将详细介绍如何在C#中正确配置和修改app.config文件,包括其结构、常见用法以及最佳实践。此外,还将探讨exe.config文件的生成机制及其在不同环境下的应用,帮助开发者更好地管理和维护应用程序的配置信息。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 每日前端实战:148# 视频教程展示纯 CSS 实现按钮两侧滑入装饰元素的悬停效果
    通过点击页面右侧的“预览”按钮,您可以直接在当前页面查看效果,或点击链接进入全屏预览模式。该视频教程展示了如何使用纯 CSS 实现按钮两侧滑入装饰元素的悬停效果。视频内容具有互动性,观众可以实时调整代码并观察变化。访问以下链接体验完整效果:https://codepen.io/comehope/pen/yRyOZr。 ... [详细]
  • 本文深入探讨了Ajax的工作机制及其在现代Web开发中的应用。Ajax作为一种异步通信技术,改变了传统的客户端与服务器直接交互的模式。通过引入Ajax,客户端与服务器之间的通信变得更加高效和灵活。文章详细分析了Ajax的核心原理,包括XMLHttpRequest对象的使用、数据传输格式(如JSON和XML)以及事件处理机制。此外,还介绍了Ajax在提升用户体验、实现动态页面更新等方面的具体应用,并讨论了其在当前Web开发中的重要性和未来发展趋势。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
author-avatar
手机用户2502852635_269
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有